<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/10/17
  Time: 22:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>6.2.1JSP页面的基本组成</title>
</head>
<body>
<h1>JSP标识</h1>
在”<%%>“内可以定义属性和输出语句，但是不能定义方法
<%
  Date d = new Date();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_hh:mm:ss");
  String format = sdf.format(d);
%>

<%--使用”<%= %>“标识来输出变量，内部的值除了可以是一个变量之外还可以是一个表达式--%>
<%=format%>

如果想定义成员变量和方法，需要使用一个新的标识，声明表示：“<%!%>”
<%!
    public int print(){
        int a = 1,b = 2;
        return a+b;
    }
%>
<%
    System.out.println(print());
%>

当我们需要进行注释的时候，可以用HTML的注释方式“<%----%>”，也可以使用JSP特有的注释方式“<!---->”
并且在JSP中，还有一种特有的注释方式，叫做动态注释
<!-- <%= new Date()%> -->
当我们使用了上面的这种注释方式的时候，会先将标识内部表达式的值计算出来之后，再进行注释，并根据每次计算的值不同而动态的更改注释的值
<hr>
<h1>JSP指令</h1>
<p>当我们需要在一个页面中引入另一个页面时，可以使用include指令</p>
<%@ include file="Demo.jsp" %>
<%--file属性指向的是被引入的JSP页面的路径--%>
<h1>JSP动作元素</h1>
使用jsp:include标签将外部的JSP页面引入到本JSP页面中
jsp:include动作标签和JSP标识中的include的区别
标识中使用file属性指定被引入的JSP页面，而动作标签使用page属性指定被引入的标签，file不允许使用表达式，page可以使用表达式
在使用标识的时候，服务器会将被引入的页面和本页面整合成一个java文件，只进行一次编译过程
而使用动作标签的时候，会单独对引入的页面和本页面进行单独的编译，载执行后面的代码，如果引入和多个页面，服务器会对每一个引入的页面进行单独的编译

使用标识引入JSP页面时是将被引入的页面中的内容原封不动的引入到页面中，所以当被引入的页面中出现和本页面中冲突的变量名或方法的时候就会出现错误
而使用动作元素引入页面的时候，是先访问被引入的页面，并将被引入的页面的结果计算出来后，再引入计算后的结果，所以不会出现变量冲突的现象

将对于本页面的访问转发到page指定的路径中的JSP页面，当前页面不再执行
</body>
</html>
